The oblique fonts are based on their non-oblique (upright) variants,
and are simply slanted by a suitable transformation matrix.
The condensed font is done similarly; the transformation matrix
performs compression along the x-axis. The reduced font has
been scaled in both x- and y-axes.
The small caps font is made by copying an existing font, and placing
reduced copies of the uppercase glyphs in the lowercase positions
(thanks to Bob Tinkelman for the code to do this).
Here's how the metric information for the derived fonts was obtained:
- Bounding Box Information
- (width, height, depth and italic correction) was obtained by
running a PostScript program, getmetrics, on a PostScript device.
- Kerning Information
- for the oblique fonts is copied from their upright versions;
this is not optimal, but should be pretty close. Kerning data
for the condensed font is simply scaled from the original.
Kerning data for the small caps font is obtained in the
following way: for a pair of characters x and y in the
original AFM file:
- If neither x nor y is a lower-case letter, the
kerning is copied into the small caps font, otherwise
the kerning data is ignored.
- If both x and y are upper-case letters, then
three extra items of kerning data are added to the
font for the pairs
(tolower(x), y),
(x,tolower(y)) and
( tolower(x),tolower(y)), by copying the
datum for (x, y). Again, this is unlikely to be
optimal, but should be pretty close.